package org.x.common.base.result;

public enum ResultCode {
    SUCCESS(200, "操作成功"),
    LOGIN_SUCCESS(200, "登录成功"),
    UNAUTHORIZED(401, "认证失败"),
    //请求资源不存在
    NOT_FOUND(404, "请求资源不存在"),
    FORBIDDEN(403, "权限不足"),
    //参数类型错误
    PARAM_TYPE_ERROR(400, "参数类型错误"),
    //参数校验异常
    PARAM_VALID_ERROR(402, "参数校验异常"),
    //请求方法不支持
    METHOD_NOT_ALLOWED(405, "请求方法不支持"),
    //媒体类型无法接受
    MEDIA_TYPE_NOT_ACCEPTABLE(406, "媒体类型无法接受"),
    //媒体类型不支持
    UNSUPPORTED_MEDIA_TYPE(415, "媒体类型不支持"),
    //路径变量缺失
    MISSING_PATH_VARIABLE(400, "路径变量缺失"),

    //服务不可用
    SERVICE_UNAVAILABLE(503, "服务不可用"),
    //服务响应超时
    SERVICE_TIMEOUT(504, "服务响应超时"),
    //网络通信异常
    NETWORK_ERROR(502, "网络通信异常"),
    //数据序列化错误
    SERIALIZATION_ERROR(505, "数据序列化错误"),
    //网关服务异常
    GATEWAY_ERROR(500, "网关服务异常"),
    TENANT_INVALID(40001, "租户无效"),
    TENANT_MISSING(40002, "缺少租户标识"),
    TENANT_SERVICE_ERROR(40003, "租户验证服务异常"),
    //缺少认证信息
    TOKEN_MISSING(40004, "缺少认证信息"),
    //Token格式错误
    TOKEN_INVALID(40005, "Token格式错误"),
    //Token格式错误
    TOKEN_SIGNATURE_ERROR(40005, "Token签名错误"),
    //Token已过期
    TOKEN_EXPIRED(40006, "Token已过期"),
    //验证码错误
    INVALID_CAPTCHA(40007, "验证码错误"),
    USER_NOT_FOUND(40010, "用户不存在"),
    INVALID_PASSWORD(40011, "密码错误"),
    //已存在相同的配置键
    CONFIG_KEY_EXIST(40012, "已存在相同的配置键"),
    //配置信息不存在
    CONFIG_NOT_FOUND(40013, "配置信息不存在"),
    //部门信息已存在
    DEPT_EXIST(40014, "部门信息已存在"),
    //部门信息不存在
    DEPT_NOT_FOUND(40015, "部门信息不存在"),
    //数据源信息已存在
    DS_CONFIG_EXIST(40016, "数据源信息已存在"),
    //数据源信息不存在
    DS_CONFIG_NOT_FOUND(40017, "数据源信息不存在"),
    //路由信息已存在
    DS_ROUTER_EXIST(40018, "路由信息已存在"),
    //路由信息不存在
    DS_ROUTER_NOT_FOUND(40019, "路由信息不存在"),
    //菜单名称已存在
    MENU_NAME_EXIST(40020, "菜单名称已存在"),
    //菜单信息不存在
    MENU_NOT_FOUND(40021, "菜单信息不存在"),
    //资源名称已存在
    RESOURCE_NAME_EXIST(40022, "资源名称已存在"),
    //资源信息不存在
    RESOURCE_NOT_FOUND(40023, "资源信息不存在"),
    //角色名称已存在
    ROLE_NAME_EXIST(40024, "角色名称已存在"),
    //角色不存在
    ROLE_NOT_FOUND(40025, "角色不存在"),
    //角色权限已存在
    ROLE_PERMISSION_EXIST(40026, "角色权限已存在"),
    //租户名称已存在
    TENANT_NAME_EXIST(40027, "租户名称已存在"),
    //租户信息不存在
    TENANT_NOT_FOUND(40028, "租户信息不存在"),
    //删除租户信息失败
    TENANT_DELETE_FAILED(40029, "删除租户信息失败"),
    //用户名已存在
    USER_NAME_EXIST(40030, "用户名已存在");


    private final int code;
    private final String msg;

    ResultCode(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    // Getter 方法
    public int getCode() { return code; }
    public String getMsg() { return msg; }
}